package com.w7vm.menuweb.managerBean;

import java.io.IOException;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;


import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import org.primefaces.context.RequestContext;
import org.primefaces.event.CloseEvent;
import org.primefaces.event.ItemSelectEvent;

import com.w7vm.menuweb.entity.AlimentosTiposSy;
import com.w7vm.menuweb.entity.CardapioBuffetWeb;
import com.w7vm.menuweb.entity.CardapioEspecialidadeWeb;
import com.w7vm.menuweb.entity.CardapioInfantilWeb;
import com.w7vm.menuweb.entity.CardapioLaCarteWeb;
import com.w7vm.menuweb.entity.CardapioSelfServiceWeb;
import com.w7vm.menuweb.entity.ComposicaoCardBuffetWeb;
import com.w7vm.menuweb.entity.ComposicaoCardSelfServiceWeb;
import com.w7vm.menuweb.entity.RestauranteFilialWeb;
import com.w7vm.menuweb.entity.RestauranteSedeWeb;
import com.w7vm.menuweb.facade.AlimentoFacade;
import com.w7vm.menuweb.facade.CardapioG1Facade;
import com.w7vm.menuweb.facade.RestauranteFilialFacade;
import com.w7vm.menuweb.facade.RestauranteSedeFacade;
import com.w7vm.menuweb.message.MessageFaces;
import com.w7vm.menuweb.service.AlimentosService;
import com.w7vm.menuweb.service.CardapioService;
import com.w7vm.menuweb.utility.Constantes;
import com.w7vm.menuweb.utility.ConstantesEJB;
import com.w7vm.menuweb.utility.DataUtils;
import com.w7vm.menuweb.utility.FacesUtil;
import com.w7vm.menuweb.utility.PropertiesLoaderImpl;
import com.w7vm.menuweb.vo.AlimentoVO;
import com.w7vm.menuweb.vo.CardapioVO;

@ManagedBean
@ViewScoped
//@RequestScoped
public class CardapioG1MB implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

//	@EJB
	private CardapioG1Facade cardapioG1EJB;

	@EJB
	private RestauranteSedeFacade sedeEJB;
	RestauranteSedeWeb restSede = new RestauranteSedeWeb();

	@EJB
	private RestauranteFilialFacade filialEJB;
	RestauranteFilialWeb restFilial = new RestauranteFilialWeb();
	
	@EJB
	private AlimentoFacade alimentoEJB;
	
	Constantes constObj = new Constantes();
	private CardapioVO cardapioVO = new CardapioVO();
	private MessageFaces message = new MessageFaces();
	private LoginMB loginOjb = new LoginMB();
	private CardapioBuffetWeb buffetEntity = null;
	private CardapioSelfServiceWeb selfserviceEntity = null;

	private	CardapioEspecialidadeWeb especialidadeEntity = new CardapioEspecialidadeWeb();
	private CardapioLaCarteWeb laCarteEntity = new CardapioLaCarteWeb();
	private	CardapioSelfServiceWeb selfServiceEntity = new CardapioSelfServiceWeb();
	private	CardapioInfantilWeb infantilEntity = new CardapioInfantilWeb(); 
	ComposicaoCardBuffetWeb compBuffetEntity = new ComposicaoCardBuffetWeb(); 

	private List<SelectItem> cardapios;
	private List<String> diasSemana;

	private List<AlimentoVO> alimentoTipoL = null;
	private List<AlimentosTiposSy> alimentosGeraisL = null;
	private List<AlimentoVO> alimentoL = null;
	private List<AlimentoVO> alimentoEntityAltL;
	private List<AlimentoVO> alimentoVOAltL;
	
	private List<AlimentoVO> compAlimentosAltL = null;

	private List<ComposicaoCardBuffetWeb> compCardBuffet = null;

	
	private String selectedTipoAlimento;
	private List<AlimentoVO> selectedAlimentoL = new ArrayList<AlimentoVO>();
	private AlimentoVO alimentoVO = new AlimentoVO();
	private AlimentoVO alimentoSelAlt;
	
	// Variaveis Status : Layout Tela
	private boolean selectedBuffetSalada = true; 
	private boolean selectedSobremesa = true; 
	private boolean selectedCortesia = true; 
	private boolean selectedBuffetQuente = true;
	private boolean selectedPanelCadastro = true;
	private boolean selectedPanelReportCad = false;
	

	private int i = -1;
	
	// List entidade Alimentos
	private List<AlimentoVO> avesL = null;
	private List<AlimentoVO> bovinaL = null;
	private List<AlimentoVO> suinaL = null;
	private List<AlimentoVO> peixeL = null;
	private List<AlimentoVO> frutaL = null;
	private List<AlimentoVO> hortalicaL = null;
	private List<AlimentoVO> doceL = null;
	private List<AlimentoVO> cereaisL = null;
	private List<AlimentoVO> massaL = null;
	private List<AlimentoVO> alimentosDefinidosL = null;
	
	
	// Variaveis : Layout Tela Nome
	private String tipoCardapio;
	private String nomeTelaCadastro;
	private String nomeTelaReport;
	private String nomeTelaCaracteristica;
	private String nomeTelaComposicao;
	private String nomeTelaAgendamento;
	private String nomeCardapio;
	private String mensagem;
	private String msgAtivacaoDesativacaoCardapio;
	private String msgTituloAtivacaoDesativacaoCardapio;

	private boolean statusSolicitacaoProxTela = false;
	private String statusDescricao;
	private int statusTipo;
	
	private Date dtAtual;
	private Date dtExpContrato;
	private List<String> selectDiasSemana;
	
	private List<String> nomeAliEspecialidadeL = new ArrayList<String>();
	private String nomeTipoAlimento;

	private String semanaDia;
	private boolean diaSegunda = false;
	private boolean diaTerca = false;
	private boolean diaQuarta = false;
	private boolean diaQuinta = false;
	private boolean diaSexta = false;
	private boolean diaSabado = false;
	private boolean diaDomingo = false;
	private String dia;
	private String diaSelecionado;

	private boolean statusDias;
	
	
	private boolean statusTelaCaracteristica = false;
	private boolean statusValidacaoCampo = false;
	
	private String nomePratoFrioCardapio;
	private String nomePratoQuenteCardapio;
	private String nomeSobremesaCardapio;
	private String nomeCortesiaCardapio;


	public CardapioG1MB() {
		System.out.println("CardapioMB()");
		
		 try {
		      Context ctx = new InitialContext();
		      cardapioG1EJB = (CardapioG1Facade) ctx.lookup("java:global/MenuWeb/MenuWeb-EJB/CardapioG1EJB");
		  } catch (NamingException e) {
		      throw new EJBException(e);
		  }
		controllCardapioG1();
	}
	
	
// ======= METHOD REDIRECT -- ===========================


	// CardapioG1 : Buffet | SelfService
	public void redirecionaCardapioOpcao(){
		try {
			FacesContext.getCurrentInstance().getExternalContext().redirect("../../../user/cardapio/opcaoCardapios.jsf");
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	// CardapioG1 : Buffet | SelfService
	public void redirecionaPortalHome(){
		try {
			FacesContext.getCurrentInstance().getExternalContext().redirect("../../../user/portalCardapioMundo.jsf");
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	// CardapioG1 : Buffet | SelfService
	public void redirecionaCardapioG1(){
		try {
			FacesContext.getCurrentInstance().getExternalContext().redirect("../../../user/cardapio/cardapioG1/cadCardapioG1.jsf");
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
// ======= METHOD LOAD -- Cardapio G1 | G2 | G3) ===========================


	public void controllCardapioG1(){
		System.out.println("controllCardapiosGrupo()");
		setStatusTelaCaracteristica(true);

		// CARDAPIO G1 - REGISTRA NOVO CARDAPIO
		if(FacesUtil.getApplicationMapValue("CardapioOpcaoMB.value") != null){
			tipoCardapio = (String) FacesUtil.getApplicationMapValue("CardapioOpcaoMB.value");
		}

		if (tipoCardapio.equals(constObj.CARDAPIO_BUFFET)){
			loadCardapioG1Buffet();
		}
		else if (tipoCardapio.equals(constObj.CARDAPIO_SELFSERVICE)){
			loadCardapioG1SelfService();
		}
	}
	
	
// ============= METHOD LOAD PAGE -- Cardapio (BUFFET | SELF.SERVICE) ===========================

		//Cardapio G1 :: Buffet 
		public void loadCardapioG1Buffet(){
			System.out.println("loadCardapioG1Buffet --> tipoCardapio  "+ tipoCardapio);
			nomeTelaCadastro = "Cadastro Cardápio - Buffet";
			nomeTelaCaracteristica = "Característica Cardápio - Buffet";
			nomeTelaComposicao = "Composição Alimentar Cardápio - Buffet";
			nomeTelaAgendamento = "Agendamento Cardápio - Buffet";
			nomeTelaReport = "REPORT CONFIRMAÇÃO CARDÁPIO";
			nomeCardapio = "CARDÁPIO BUFFET";
		}

		//Cardapio G1 :: Self Service
		public void loadCardapioG1SelfService(){
			System.out.println("loadCardapioG1SelfService --> tipoCardapio  "+ tipoCardapio);
			nomeTelaCadastro = "Cadastro Cardápio - SelfService";
			nomeTelaCaracteristica = "Característica Cardápio - SelfService";
			nomeTelaComposicao = "Composição Alimentar Cardápio - SelfService";
			nomeTelaAgendamento = "Agendamento Cardápio - SelfService";
			nomeCardapio = "CARDÁPIO SELFSERVICE";
		}
	
	
// ======= METHOD LOAD -- Cardapio (Buffet / LaCarte / Infantil / SelfService / Especialidade) ===========================

	public List<AlimentoVO> loadTipoAlimentos(){
		System.out.println("loadTipoAlimentos ================================================= ");
		AlimentosService alimentoService = new AlimentosService();

		alimentosGeraisL = alimentoEJB.getFindAlimentosTiposByAll();
		
		System.out.println("loadTipoAlimentos getFindAlimentosTiposByAll  "+ alimentosGeraisL.size());
		if(alimentosGeraisL != null)
		{
			alimentoTipoL = alimentoService.convertListaAlimentoTipo(alimentosGeraisL);
		}
		System.out.println("loadTipoAlimentos ================================================  "+ alimentoTipoL.size());
		return alimentoTipoL;
	}
	
	public List<AlimentoVO> loadAlimentosComposicao(List<AlimentosTiposSy> alimentosGeraisL, String tipoAlimento){
		System.out.println("BEGIN loadAlimentosComposicao ================================================= ");
		
		AlimentosService alimentoService = new AlimentosService();
		alimentoL = alimentoService.convertListaAlimentoComposicao(alimentosGeraisL, tipoAlimento);
		System.out.println("END loadAlimentosComposicao ================================================  "+ alimentoL.size());
		return alimentoL;
	}
	
	public List<AlimentoVO> loadAlimentosDefinidosL(){
		System.out.println("BEGIN loadAlimentosDefinidosL ================================================= ");
		List<AlimentoVO> defineAlimentoL = new ArrayList<AlimentoVO>();
		
		System.out.println("AVES...................."+ avesL);
		System.out.println("BOVINO...................."+ bovinaL);
		
		if(avesL != null){
			defineAlimentoL.addAll(avesL);
		}
		
		if(bovinaL != null){
			defineAlimentoL.addAll(bovinaL);
		}
		
		if(suinaL != null){
			defineAlimentoL.addAll(suinaL);
		}
		
		if(peixeL != null){
			defineAlimentoL.addAll(peixeL);
		}
		
		if(frutaL != null){
			defineAlimentoL.addAll(frutaL);
		}
		
		if(hortalicaL != null){
			defineAlimentoL.addAll(hortalicaL);
		}
		
		if(doceL != null){
			defineAlimentoL.addAll(doceL);
		}
		
		if(cereaisL != null){
			defineAlimentoL.addAll(cereaisL);
		}
		
		if(massaL != null){
			defineAlimentoL.addAll(massaL);
		}
		System.out.println("END loadAlimentosDefinidosL ================================================  ");
		return defineAlimentoL;
	}

// ======= VALIDA CAMPOS --  ===========================
	
	
	public void validaCaracteristicaCardapio(){
		System.out.println("validaCaracteristicaCardapio() ");

		
		if(selectedBuffetQuente == false && selectedBuffetSalada == false
				&& selectedSobremesa == false && selectedCortesia == false){

			String msgTitulo = PropertiesLoaderImpl.getValor("msgValidaCaracteristicaCard");
			message.sendErrorMessageToUser(msgTitulo, "msgOpcao");
		}
		else{
			RequestContext context = RequestContext.getCurrentInstance();
			context.execute("PF('dlgCaracteristicaCardapio').hide();");
		}
	}

	public void validaComposicaoAlimentos(){
		System.out.println("validaCamposComposicao() ");

		
		if(avesL == null && bovinaL == null && suinaL == null && 
				peixeL == null && frutaL == null && hortalicaL == null &&
				doceL == null && cereaisL == null && massaL== null){

			String msgTitulo = PropertiesLoaderImpl.getValor("msgValidaComposicao");
			message.sendErrorMessageToUser(msgTitulo, "msgComposicao");
		}
		else{
			RequestContext context = RequestContext.getCurrentInstance();
			context.execute("PF('dlgAgendamento').show();");
		}
	}
	
	public boolean validaAgendamentoCardapio(){
		System.out.println("validaAgendamentoCardapio() ");
		boolean retorno = false;
		DataUtils dateCheck = new DataUtils();
		String dataNowS;

		if(selectDiasSemana.size() == 0){
			String msgTitulo = PropertiesLoaderImpl.getValor("msgDiasSemana");
			System.out.println("validaAgendamentoCardapio  "+ msgTitulo);
			message.sendErrorMessageToUser(msgTitulo, "diasSemana");
			retorno = true;
			return retorno; 
		}
		
		if(cardapioVO.getDtInicio() == null){
			String msgTitulo = PropertiesLoaderImpl.getValor("dtInicioAgendamento");
			System.out.println("validaAgendamentoCardapio  "+ msgTitulo);
			message.sendErrorMessageToUser(msgTitulo, "diasSemana");
			retorno = true;
			return retorno; 
		}
		else{
			SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy");
			dataNowS = DATE_FORMAT.format(cardapioVO.getDtInicio());
			
			if(dateCheck.validaData(dataNowS) == false){
				String msgTitulo = PropertiesLoaderImpl.getValor("dtInicioCardapioInvalida");
				System.out.println("dtInvalida  "+ msgTitulo);
				message.sendErrorMessageToUser(msgTitulo, "agendamentoDias");
				retorno = true;
				return retorno; 
			}
		}
		
		if(cardapioVO.getDtTermino() != null){
			SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy");
			dataNowS = DATE_FORMAT.format(cardapioVO.getDtTermino());

			if(cardapioVO.getDtTermino().before(cardapioVO.getDtInicio())){
				String msgTitulo = PropertiesLoaderImpl.getValor("dtFimRegraAtiva");
				System.out.println("validaAgendamentoCardapio  "+ msgTitulo);
				message.sendErrorMessageToUser(msgTitulo, "agendamentoDias");
				retorno = true;
				return retorno; 
			}
			if(dateCheck.validaData(dataNowS) == false){
				String msgTitulo = PropertiesLoaderImpl.getValor("dtFimCardapioInvalida");
				System.out.println("dtInvalida  "+ msgTitulo);
				message.sendErrorMessageToUser(msgTitulo, "agendamentoDias");
				retorno = true;
				return retorno; 
			}
		}
		if(retorno == false){
			selectedPanelCadastro = false;
			selectedPanelReportCad = true;
			statusTelaCaracteristica = false;
			RequestContext context3 = RequestContext.getCurrentInstance();
			context3.execute("PF('dlgReport').show();");
		}
		return retorno; 
	}	

	public boolean validaCamposCadastro(){
		
		boolean statusValidacaoPS = false;
		
		System.out.println("validaCamposCadastro()..............."+ selectedBuffetSalada);
		
		if(selectedBuffetQuente == true){
			if(cardapioVO.getEntradasQuentes().equals("")){
				System.out.println("getEntradasQuentes........+++++++++++++++++++++++.......");
				statusValidacaoPS = true;
			}
		}

		if(getSelectedBuffetSalada() == true){
			if(cardapioVO.getEntradasFrias().equals("")){
				System.out.println("getEntradasFrias...............");
				statusValidacaoPS = true;
			}
		}
		
		if(selectedSobremesa == true ){
			if(cardapioVO.getSobremesa().equals("")){
				System.out.println("getSobremesa...............");
				statusValidacaoPS = true;
			}
		}

		if(selectedCortesia == true){
			if(cardapioVO.getCortesia().equals("")){
				System.out.println("getCortesia...............");
				statusValidacaoPS = true;
			}
		}

		if(statusValidacaoPS == true){
			String msgTitulo = PropertiesLoaderImpl.getValor("msgValidaCardapio");
			message.sendErrorMessageToUser(msgTitulo, "messages");
			statusValidacaoPS = true;
			return statusValidacaoPS ;
		}
		else{
			System.out.println("TESTE 7");
			RequestContext context = RequestContext.getCurrentInstance();
			context.execute("PF('dlgComposicaoAlimentar').show();");
			return statusValidacaoPS ;
		}
	}


	
// ======= METHOD PERSIST -- Cardapio (Buffet / LaCarte / Infantil / SelfService / Especialidade) ===========================
	
	
	public void salvarCardapio(){
		System.out.println("salvarCardapio()....."+ tipoCardapio);
		
		if(tipoCardapio.equals(constObj.CARDAPIO_BUFFET)){
			buffetEntity = new CardapioBuffetWeb();
			salvarCardapioBuffet();
		} else if(tipoCardapio.equals(constObj.CARDAPIO_SELFSERVICE)){
			selfServiceEntity = new CardapioSelfServiceWeb();
			salvarCardapioSelfService();
		}

	}
	
	public void salvarCardapioSelfService(){
		System.out.println("salvarCardapioSelfService()");
		RestauranteSedeWeb restSedeObj = new RestauranteSedeWeb();
		RestauranteFilialWeb restFilialObj = new RestauranteFilialWeb();

		AlimentosService alimentoService = new AlimentosService();
		List<ComposicaoCardSelfServiceWeb> compCardSelfServiceAlimentoL = null;
		int idRestauranteFilial = 0;
		int idRestauranteSede = 0;
		String dtTermino;
		
		if(selectDiasSemana != null){
			String dias = preparaDiasSemana();
			cardapioVO.setDiasSemana(dias);
		}
		
		if (cardapioVO.getDtTermino() == null){
			dtTermino = (String) loginOjb.getSessao("DtTerminoContrato");
			DateFormat formatter = new SimpleDateFormat("MM/dd/yy");
			try {
				Date date = (Date)formatter.parse(dtTermino);
				System.out.println("Data Termino....."+ date );
				cardapioVO.setDtTermino(date);
			} catch (ParseException e) {
				e.printStackTrace();
			}  
		}
		
		Date nowData = new Date();
		SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yyyy");
		String dateToday = DATE_FORMAT.format(nowData);
		String dateCard = DATE_FORMAT.format(cardapioVO.getDtInicio());
		
		if(dateToday.equals(dateCard)){
			selfServiceEntity.setStatus(constObj.ATIVO);
		}
		else{
	  		selfServiceEntity.setStatus(constObj.AGENDADO_ATIVACAO);
		}
		
		selfserviceEntity = cardapioG1EJB.setCardapioSelfServiceEntity(cardapioVO);
		compCardSelfServiceAlimentoL = alimentoService.convertListaAlimentoEntitySelfService(getAlimentosDefinidosL(), selfserviceEntity);

		// Set Entity RestauraloginOjbnte SEDE | FILIAL | ComposicaoCardapio
		selfserviceEntity.setComposicaoCardSelfServiceWebs(compCardSelfServiceAlimentoL);
		selfServiceEntity.setDtCadastro(new Date());
		
		if(loginOjb.getSessao("AcessoFilial").equals(constObj.ACESSO_FILIAL_SIM)){
			System.out.println("Acesso FILIAL SIM.................");

			idRestauranteFilial = (Integer) loginOjb.getSessao("IDRestaurante");
			idRestauranteSede = (Integer) loginOjb.getSessao("IDSede");
			cardapioVO.setIdRestauranteSede(idRestauranteSede);
			cardapioVO.setIdRestauranteFilial(idRestauranteFilial);
			restSedeObj.setIdRestauranteSedeWeb(cardapioVO.getIdRestauranteSede());			
			restFilialObj.setIdRestauranteFilialWeb(cardapioVO.getIdRestauranteFilial());
			selfserviceEntity.setRestauranteFilialWeb(restFilialObj);
			selfserviceEntity.setRestauranteSedeWeb(restSedeObj);
			System.out.println("Acesso FILIAL SIM................."+ selfserviceEntity.getRestauranteFilialWeb());
		}
		else if(loginOjb.getSessao("AcessoFilial").equals(constObj.ACESSO_FILIAL_NAO)){
			System.out.println("Acesso FILIAL NÃO.................");

			idRestauranteSede = (Integer) loginOjb.getSessao("IDSede");
			cardapioVO.setIdRestauranteSede(idRestauranteSede);
			restSedeObj.setIdRestauranteSedeWeb(cardapioVO.getIdRestauranteSede());		
			selfserviceEntity.setRestauranteSedeWeb(restSedeObj);
			System.out.println("Acesso FILIAL NÃO................."+ selfserviceEntity.getRestauranteSedeWeb());
		}
		
		try{
			cardapioG1EJB.saveSelfService(selfserviceEntity);
			RequestContext context = RequestContext.getCurrentInstance();
			context.execute("PF('dlgMsgDecisao').show();");
		} catch (Exception e) {
			e.printStackTrace();
			String msgTitulo = PropertiesLoaderImpl.getValor("tErrorCadCardapioBuffet");
			message.sendErrorMessageToUser(msgTitulo, "");
		}
 	}
	
	
	public void salvarCardapioBuffet(){
		System.out.println("salvarCardapioBuffet()");
		RestauranteSedeWeb restSedeObj = new RestauranteSedeWeb();
		RestauranteFilialWeb restFilialObj = new RestauranteFilialWeb();
		AlimentosService alimentoService = new AlimentosService();
		List<ComposicaoCardBuffetWeb> compCardBuffetAlimentoL = null;
		int idRestauranteFilial = 0;
		int idRestauranteSede = 0;
		String dtTermino;
		
		if(selectDiasSemana != null){
			String dias = preparaDiasSemana();
			cardapioVO.setDiasSemana(dias);
		}
		
		if (cardapioVO.getDtTermino() == null){
			dtTermino = (String) loginOjb.getSessao("DtTerminoContrato");
			DateFormat formatter = new SimpleDateFormat("MM/dd/yy");
			try {
				Date date = (Date)formatter.parse(dtTermino);
				System.out.println("Data Termino....."+ date );
				cardapioVO.setDtTermino(date);
			} catch (ParseException e) {
				e.printStackTrace();
			}  
		}
		cardapioVO.setDtCadastro(new Date());
		buffetEntity = cardapioG1EJB.setCardapioBuffetEntity(cardapioVO);
		
		Date nowData = new Date();
		SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yyyy");
		String dateToday = DATE_FORMAT.format(nowData);
		String dateCard = DATE_FORMAT.format(cardapioVO.getDtInicio());
		
		System.out.println("dateToday................."+ dateToday);
		System.out.println("dateCard................."+ dateCard);
		
		if(dateToday.equals(dateCard)){
			buffetEntity.setStatus(constObj.ATIVO);
		}
		else{
			buffetEntity.setStatus(constObj.AGENDADO_ATIVACAO);
		}
	
		compCardBuffetAlimentoL = alimentoService.convertListaAlimentoEntityBuffet(getAlimentosDefinidosL(), buffetEntity);

		

		// Set Entity Restaurante SEDE | FILIAL | ComposicaoCardapio
		buffetEntity.setComposicaoCardBuffetWebs(compCardBuffetAlimentoL);
		
		if(loginOjb.getSessao("AcessoFilial").equals(constObj.ACESSO_FILIAL_SIM)){
			System.out.println("Acesso FILIAL SIM.................");

			idRestauranteFilial = (Integer) loginOjb.getSessao("IDRestaurante");
			idRestauranteSede = (Integer) loginOjb.getSessao("IDSede");
			cardapioVO.setIdRestauranteSede(idRestauranteSede);
			cardapioVO.setIdRestauranteFilial(idRestauranteFilial);
			restSedeObj.setIdRestauranteSedeWeb(cardapioVO.getIdRestauranteSede());			
			restFilialObj.setIdRestauranteFilialWeb(cardapioVO.getIdRestauranteFilial());
			buffetEntity.setRestauranteFilialWeb(restFilialObj);
			buffetEntity.setRestauranteSedeWeb(restSedeObj);
			System.out.println("Acesso FILIAL SIM................."+ buffetEntity.getRestauranteFilialWeb());
		}
		else if(loginOjb.getSessao("AcessoFilial").equals(constObj.ACESSO_FILIAL_NAO)){
			System.out.println("Acesso FILIAL NÃO.................");

			idRestauranteSede = (Integer) loginOjb.getSessao("IDSede");
			cardapioVO.setIdRestauranteSede(idRestauranteSede);
			restSedeObj.setIdRestauranteSedeWeb(cardapioVO.getIdRestauranteSede());		
			buffetEntity.setRestauranteSedeWeb(restSedeObj);
			System.out.println("Acesso FILIAL NÃO................."+ buffetEntity.getRestauranteSedeWeb());

		}

		try{
			cardapioG1EJB.saveBuffet(buffetEntity);
			RequestContext context = RequestContext.getCurrentInstance();
			context.execute("PF('dlgMsgDecisao').show();");
		} catch (Exception e) {
			e.printStackTrace();
			String msgTitulo = PropertiesLoaderImpl.getValor("tErrorCadCardapioBuffet");
			message.sendErrorMessageToUser(msgTitulo, "");
		}
 	}
	
// ======= METHOD PREPARA METHOD -- PERSISTE ===========================
	
	public String preparaDiasSemana(){
		String dias = null;
		
		for(String dia : selectDiasSemana){
			if(dias == null){
				dias = dia;
			}
			else{
				dias = dias + "|"+ dia;
			}
		}
		return dias;
	}
	

	public String getTipoCardapio() {
		return tipoCardapio;
	}

	public void setTipoCardapio(String tipoCardapio) {
		this.tipoCardapio = tipoCardapio;
	}

	public CardapioVO getCardapioVO() {
		return cardapioVO;
	}

	public void setCardapioVO(CardapioVO cardapioVO) {
		this.cardapioVO = cardapioVO;
	}

	public RestauranteSedeWeb getRestSede() {
		return restSede;
	}

	public void setRestSede(RestauranteSedeWeb restSede) {
		this.restSede = restSede;
	}

	public RestauranteFilialWeb getRestFilial() {
		return restFilial;
	}

	public void setRestFilial(RestauranteFilialWeb restFilial) {
		this.restFilial = restFilial;
	}

	public List<SelectItem> getCardapios() {
		return cardapios;
	}

	public void setCardapios(List<SelectItem> cardapios) {
		this.cardapios = cardapios;
	}


	public List<AlimentoVO> getSelectedAlimentoL() {
		System.out.println("getSelectedAlimentoL........."+ selectedAlimentoL);

		return selectedAlimentoL;
	}
	
	public void setSelectedAlimentoL(List<AlimentoVO> selectedAlimentoL) {
		System.out.println("setSelectedAlimentoL ABC................"+ selectedAlimentoL.size());

		if(selectedAlimentoL.size() > 0){

			System.out.println("IF RESULT O.K "+ selectedAlimentoL);
			alimentoVOAltL = selectedAlimentoL;

			for(AlimentoVO a : selectedAlimentoL){
				
				if(a.getNomeTipo() == constObj.ALIM_CARNE_AVE){
					this.avesL = selectedAlimentoL;
					System.out.println("ALIM AVES....."+ this.avesL.size());
				}
				else if(a.getNomeTipo().equals(constObj.ALIM_CARNE_BOV)){
					System.out.println("ALIM BOVINA.....");
					this.bovinaL = selectedAlimentoL;
					System.out.println("ALIM BOVINA....."+ this.bovinaL.size());
				}
				else if(a.getNomeTipo().equals(constObj.ALIM_CARNE_PEI)){
					this.peixeL = selectedAlimentoL;
				}
				else if(a.getNomeTipo().equals(constObj.ALIM_CARNE_SUI)){
					this.suinaL = selectedAlimentoL;
				}
				else if(a.getNomeTipo().equals(constObj.ALIM_CEREAIS_GER)){
					this.cereaisL = selectedAlimentoL;
				}
				else if(a.getNomeTipo().equals(constObj.ALIM_CEREAIS_MAS)){
					this.massaL = selectedAlimentoL;
				}
				else if(a.getNomeTipo().equals(constObj.ALIM_ACUCAR_DOC)){
					this.doceL = selectedAlimentoL;
				}
				else if(a.getNomeTipo().equals(constObj.ALIM_FRUTAS_FRU)){
					this.frutaL = selectedAlimentoL;
				}
				else if(a.getNomeTipo().equals(constObj.ALIM_HORTAL_HORT)){
					this.hortalicaL = selectedAlimentoL;
				}
			}
		}
	}


	public List<AlimentoVO> getAlimentoTipoL() {
		System.out.println("BEGIN getAlimentoTipoL =====================================================");
		if(alimentoTipoL == null){
			alimentoTipoL = loadTipoAlimentos();
	
			for(AlimentoVO a : alimentoTipoL){
				nomeAliEspecialidadeL.add(a.getNomeTipo());
			}
		}
		return alimentoTipoL;
	}


	public void setAlimentoTipoL(List<AlimentoVO> alimentoTipoL) {
		this.alimentoTipoL = alimentoTipoL;
	}
	
	public List<AlimentoVO> getAlimentoL() {
		System.out.println("BEGIN getAlimentoL()");

		System.out.println("BEGIN nomeAliEspecialidadeL   "+ nomeAliEspecialidadeL.size());

		
		if(i == nomeAliEspecialidadeL.size() -1){
			i = nomeAliEspecialidadeL.size() -1;
		}
		else{
			i++;			
		}

		
		System.out.println("Numero do Alimento..........>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+ i);

		if(i <= nomeAliEspecialidadeL.size() -1){
			System.out.println("Numero do Alimento.........."+ i);
			String tipoAlimento = nomeAliEspecialidadeL.get(i);
			System.out.println("Nome do Alimento.........."+ tipoAlimento);
			
			alimentoL = loadAlimentosComposicao(alimentosGeraisL,tipoAlimento);
				
			System.out.println("END getAlimentoL().................."+ alimentoL.size());
			
			if(i == nomeAliEspecialidadeL.size() -1){
				i = -1;
			}

		}
		return alimentoL;
	}


	
	public void setAlimentoL(List<AlimentoVO> alimentoL) {
		this.alimentoL = alimentoL;
	}


	public String getSelectedTipoAlimento() {
		return selectedTipoAlimento;
	}


	public void setSelectedTipoAlimento(String selectedTipoAlimento) {
		this.selectedTipoAlimento = selectedTipoAlimento;
	}

	public Constantes getConstObj() {
		return constObj;
	}


	public void setConstObj(Constantes constObj) {
		this.constObj = constObj;
	}

	public String getNomeTelaCadastro() {
		return nomeTelaCadastro;
	}

	public void setNomeTelaCadastro(String nomeTelaCadastro) {
		this.nomeTelaCadastro = nomeTelaCadastro;
	}

	public String getNomeTelaCaracteristica() {
		return nomeTelaCaracteristica;
	}

	public void setNomeTelaCaracteristica(String nomeTelaCaracteristica) {
		this.nomeTelaCaracteristica = nomeTelaCaracteristica;
	}

	public String getNomeTelaComposicao() {
		return nomeTelaComposicao;
	}

	public void setNomeTelaComposicao(String nomeTelaComposicao) {
		this.nomeTelaComposicao = nomeTelaComposicao;
	}

	public String getNomeTelaAgendamento() {
		return nomeTelaAgendamento;
	}

	public void setNomeTelaAgendamento(String nomeTelaAgendamento) {
		this.nomeTelaAgendamento = nomeTelaAgendamento;
	}

	public boolean getSelectedBuffetSalada() {
		System.out.println("getSelectedBuffetSalada()"+ selectedBuffetSalada);
		return selectedBuffetSalada;
	}



	public void setSelectedBuffetSalada(boolean selectedBuffetSalada) {
		System.out.println("getSelectedBuffetSalada()"+ selectedBuffetSalada);
		this.selectedBuffetSalada = selectedBuffetSalada;
	}



	public boolean getSelectedSobremesa() {
		return selectedSobremesa;
	}



	public void setSelectedSobremesa(boolean selectedSobremesa) {
		this.selectedSobremesa = selectedSobremesa;
	}


	public boolean getSelectedCortesia() {
		return selectedCortesia;
	}



	public void setSelectedCortesia(boolean selectedCortesia) {
		this.selectedCortesia = selectedCortesia;
	}



	public boolean isStatusTelaCaracteristica() {
		System.out.println("isStatusTelaCaracteristica()"+ statusTelaCaracteristica);
		return statusTelaCaracteristica;
	}



	public void setStatusTelaCaracteristica(boolean statusTelaCaracteristica) {
		this.statusTelaCaracteristica = statusTelaCaracteristica;
	}


	public boolean isStatusValidacaoCampo() {
		return statusValidacaoCampo;
	}


	public void setStatusValidacaoCampo(boolean statusValidacaoCampo) {
		this.statusValidacaoCampo = statusValidacaoCampo;
	}


	public AlimentoVO getAlimentoVO() {
		return alimentoVO;
	}


	public void setAlimentoVO(AlimentoVO alimentoVO) {
		this.alimentoVO = alimentoVO;
	}


	public List<String> getNomeAliEspecialidadeL() {
		return nomeAliEspecialidadeL;
	}


	public void setNomeAliEspecialidadeL(List<String> nomeAliEspecialidadeL) {
		this.nomeAliEspecialidadeL = nomeAliEspecialidadeL;
	}


	public String getNomeTipoAlimento() {
		return nomeTipoAlimento;
	}


	public void setNomeTipoAlimento(String nomeTipoAlimento) {
		this.nomeTipoAlimento = nomeTipoAlimento;
	}


	public String getMensagem() {
		return mensagem;
	}


	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}


	public boolean isStatusSolicitacaoProxTela() {
		return statusSolicitacaoProxTela;
	}


	public void setStatusSolicitacaoProxTela(boolean statusSolicitacaoProxTela) {
		System.out.println("setStatusSolicitacaoProxTela "+ statusSolicitacaoProxTela);
		this.statusSolicitacaoProxTela = statusSolicitacaoProxTela;
	}


	public RestauranteSedeFacade getSedeEJB() {
		return sedeEJB;
	}


	public void setSedeEJB(RestauranteSedeFacade sedeEJB) {
		this.sedeEJB = sedeEJB;
	}


	public RestauranteFilialFacade getFilialEJB() {
		return filialEJB;
	}


	public void setFilialEJB(RestauranteFilialFacade filialEJB) {
		this.filialEJB = filialEJB;
	}


	public AlimentoFacade getAlimentoEJB() {
		return alimentoEJB;
	}


	public void setAlimentoEJB(AlimentoFacade alimentoEJB) {
		this.alimentoEJB = alimentoEJB;
	}


	public LoginMB getLoginOjb() {
		return loginOjb;
	}


	public void setLoginOjb(LoginMB loginOjb) {
		this.loginOjb = loginOjb;
	}


	public CardapioEspecialidadeWeb getEspecialidadeEntity() {
		return especialidadeEntity;
	}


	public void setEspecialidadeEntity(CardapioEspecialidadeWeb especialidadeEntity) {
		this.especialidadeEntity = especialidadeEntity;
	}


	public CardapioLaCarteWeb getLaCarteEntity() {
		return laCarteEntity;
	}


	public void setLaCarteEntity(CardapioLaCarteWeb laCarteEntity) {
		this.laCarteEntity = laCarteEntity;
	}


	public CardapioSelfServiceWeb getSelfServiceEntity() {
		return selfServiceEntity;
	}


	public void setSelfServiceEntity(CardapioSelfServiceWeb selfServiceEntity) {
		this.selfServiceEntity = selfServiceEntity;
	}


	public CardapioInfantilWeb getInfantilEntity() {
		return infantilEntity;
	}


	public void setInfantilEntity(CardapioInfantilWeb infantilEntity) {
		this.infantilEntity = infantilEntity;
	}


	public List<AlimentosTiposSy> getAlimentosGeraisL() {
		return alimentosGeraisL;
	}


	public void setAlimentosGeraisL(List<AlimentosTiposSy> alimentosGeraisL) {
		this.alimentosGeraisL = alimentosGeraisL;
	}


	public int getI() {
		return i;
	}


	public void setI(int i) {
		this.i = i;
	}


	public List<AlimentoVO> getAvesL() {
		return avesL;
	}


	public void setAvesL(List<AlimentoVO> avesL) {
		this.avesL = avesL;
	}


	public List<AlimentoVO> getBovinaL() {
		return bovinaL;
	}


	public void setBovinaL(List<AlimentoVO> bovinaL) {
		this.bovinaL = bovinaL;
	}


	public List<AlimentoVO> getSuinaL() {
		return suinaL;
	}


	public void setSuinaL(List<AlimentoVO> suinaL) {
		this.suinaL = suinaL;
	}


	public List<AlimentoVO> getPeixeL() {
		return peixeL;
	}


	public void setPeixeL(List<AlimentoVO> peixeL) {
		this.peixeL = peixeL;
	}


	public List<AlimentoVO> getFrutaL() {
		return frutaL;
	}


	public void setFrutaL(List<AlimentoVO> frutaL) {
		this.frutaL = frutaL;
	}


	public List<AlimentoVO> getHortalicaL() {
		return hortalicaL;
	}


	public void setHortalicaL(List<AlimentoVO> hortalicaL) {
		this.hortalicaL = hortalicaL;
	}


	public List<AlimentoVO> getDoceL() {
		return doceL;
	}


	public void setDoceL(List<AlimentoVO> doceL) {
		this.doceL = doceL;
	}


	public List<AlimentoVO> getCereaisL() {
		return cereaisL;
	}


	public void setCereaisL(List<AlimentoVO> cereaisL) {
		this.cereaisL = cereaisL;
	}


	public List<AlimentoVO> getMassaL() {
		return massaL;
	}


	public void setMassaL(List<AlimentoVO> massaL) {
		this.massaL = massaL;
	}


	public Date getDtAtual() {
		dtAtual = new Date();
		return dtAtual;
	}


	public void setDtAtual(Date dtAtual) {
		this.dtAtual = dtAtual;
	}


	public Date getDtExpContrato() throws ParseException {
		DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");  
		String data = (String) loginOjb.getSessao("DtTerminoContrato");
		dtExpContrato = formatter.parse(data); 
		return dtExpContrato;
	}


	public void setDtExpContrato(Date dtExpContrato) {
		this.dtExpContrato = dtExpContrato;
	}


	public List<String> getSelectDiasSemana() {
		
		if(selectDiasSemana != null){
			for(String diaSemana : selectDiasSemana){
				if(diaSemana.equals(semanaDia)){
					dia =  diaSemana;
				}
			}
		}
		return selectDiasSemana;
	}


	public void setSelectDiasSemana(List<String> selectDiasSemana) {
		this.selectDiasSemana = selectDiasSemana;
	}

	public boolean isSelectedBuffetQuente() {
		return selectedBuffetQuente;
	}


	public void setSelectedBuffetQuente(boolean selectedBuffetQuente) {
		this.selectedBuffetQuente = selectedBuffetQuente;
	}


	public boolean isSelectedPanelCadastro() {
		System.out.println("setSelectedPanelCadastro "+  selectedPanelCadastro);
		return selectedPanelCadastro;
	}


	public void setSelectedPanelCadastro(boolean selectedPanelCadastro) {
		this.selectedPanelCadastro = selectedPanelCadastro;
	}


	public boolean isSelectedPanelReportCad() {
		return selectedPanelReportCad;
	}


	public void setSelectedPanelReportCad(boolean selectedPanelReportCad) {
		this.selectedPanelReportCad = selectedPanelReportCad;
	}


	public List<AlimentoVO> getAlimentosDefinidosL() {
		alimentosDefinidosL = loadAlimentosDefinidosL();
		return alimentosDefinidosL;
	}


	public void setAlimentosDefinidosL(List<AlimentoVO> alimentosDefinidosL) {
		this.alimentosDefinidosL = alimentosDefinidosL;
	}


	public boolean getDiaSegunda() {
		semanaDia = constObj.DIA_SEGUNDA;
		getSelectDiasSemana();
		
		System.out.println("getDiaSegunda()"+ dia);
		if(dia != null){
			
			if(dia.equals(constObj.DIA_SEGUNDA)){
				diaSegunda = true;
				System.out.println("getDiaSegunda() IF 1 "+ diaSegunda );
			}
			else{
				diaSegunda = false;
				System.out.println("getDiaSegunda() ELSE 1 "+ diaSegunda );
			}
		}
		System.out.println("getDiaSegunda() result"+ diaSegunda );
		return diaSegunda;
	}


	public void setDiaSegunda(boolean diaSegunda) {
		this.diaSegunda = diaSegunda;
	}


	public boolean getDiaTerca() {
		semanaDia = constObj.DIA_TERCA;
		getSelectDiasSemana();

		if(dia != null){
		
			if(dia.equals(constObj.DIA_TERCA)){
				diaTerca = true;
			}
			else{
				diaTerca = false;
			}
		}
		return diaTerca;
	}


	public void setDiaTerca(boolean diaTerca) {
		this.diaTerca = diaTerca;
	}


	public boolean getDiaQuarta() {
		semanaDia = constObj.DIA_QUARTA;
		getSelectDiasSemana();
		
		if(dia != null){
			
			if(dia.equals(constObj.DIA_QUARTA)){
				diaQuarta = true;
			}
			else{
				diaQuarta = false;
			}
		}
		return diaQuarta;
	}


	public void setDiaQuarta(boolean diaQuarta) {
		this.diaQuarta = diaQuarta;
	}


	public boolean getDiaQuinta() {
		semanaDia = constObj.DIA_QUINTA;
		getSelectDiasSemana();

		if(dia != null){

			if(dia.equals(constObj.DIA_QUINTA)){
				diaQuinta = true;
			}
			else{
				diaQuinta = false;
			}
		}
		return diaQuinta;
	}


	public void setDiaQuinta(boolean diaQuinta) {
		this.diaQuinta = diaQuinta;
	}


	public boolean getDiaSexta() {
		semanaDia = constObj.DIA_SEXTA;
		getSelectDiasSemana();
		
		if(dia != null){
			if(dia.equals(constObj.DIA_SEXTA)){
				diaSexta = true; 
			}
			else{
				diaSexta = false;
			}
		}
		return diaSexta;
	}


	public void setDiaSexta(boolean diaSexta) {
		this.diaSexta = diaSexta;
	}


	public boolean getDiaSabado() {
		semanaDia = constObj.DIA_SABADO;
		getSelectDiasSemana();
		
		if(dia != null){
			if(dia.equals(constObj.DIA_SABADO)){
				diaSabado = true; 
			}
			else{
				diaSabado = false;
			}
		}
		return diaSabado;
	}


	public void setDiaSabado(boolean diaSabado) {
		this.diaSabado = diaSabado;
	}


	public boolean getDiaDomingo() {
		semanaDia = constObj.DIA_DOMINGO;
		getSelectDiasSemana();
		if(dia != null){

			if(dia.equals(constObj.DIA_DOMINGO)){
				diaDomingo = true; 
			}
			else{
				diaDomingo = false;
			}
		}
		return diaDomingo;
	}


	public void setDiaDomingo(boolean diaDomingo) {
		this.diaDomingo = diaDomingo;
	}


	public String getDia() {
		return dia;
	}


	public void setDia(String dia) {
		this.dia = dia;
	}


	public String isSemanaDia() {
		return semanaDia;
	}


	public void setSemanaDia(String semanaDia) {
		this.semanaDia = semanaDia;
	}


	public CardapioBuffetWeb getBuffetEntity() {
		return buffetEntity;
	}


	public void setBuffetEntity(CardapioBuffetWeb buffetEntity) {
		this.buffetEntity = buffetEntity;
	}


	public CardapioSelfServiceWeb getSelfserviceEntity() {
		return selfserviceEntity;
	}


	public void setSelfserviceEntity(CardapioSelfServiceWeb selfserviceEntity) {
		this.selfserviceEntity = selfserviceEntity;
	}


	public String getNomeTelaReport() {
		return nomeTelaReport;
	}


	public void setNomeTelaReport(String nomeTelaReport) {
		this.nomeTelaReport = nomeTelaReport;
	}


	public String getNomeCardapio() {
		return nomeCardapio;
	}


	public void setNomeCardapio(String nomeCardapio) {
		this.nomeCardapio = nomeCardapio;
	}

//*************************************************************************************************************
// MÉTODO :: ALTERAÇÃO - COMPOSIÇÃO DE ALIMENTOS
//*************************************************************************************************************

	public void excluirAlimento(){
		System.out.println("[METHOD][excluirAlimento]");
		
		if(alimentoSelAlt == null){
			String msgTitulo = PropertiesLoaderImpl.getValor("msgValidaExclusao");
			message.sendErrorMessageToUser(msgTitulo, "");
		}
		else if(alimentoEntityAltL.size() == 1){
			String msgTitulo = PropertiesLoaderImpl.getValor("msgValidaAlimentosExcluir");
			message.sendErrorMessageToUser(msgTitulo, "");
		}
		else if(alimentoSelAlt != null){
			
			for(int i = 0; i < alimentoEntityAltL.size(); i++){
				AlimentoVO a = alimentoEntityAltL.get(i);
				
				if(a.getDescricao().equals(alimentoSelAlt.getDescricao())){
					alimentoEntityAltL.remove(i);
					break;
				}
			}
			
		}
	}
	
	public void excluirDias(){
		System.out.println("[METHOD][excluirDias()]"+ diasSemana.size());
		
		if(diaSelecionado == null){
			String msgTitulo = PropertiesLoaderImpl.getValor("msgValidaExclusao");
			message.sendErrorMessageToUser(msgTitulo, "");
		}
		else if(diasSemana.size() == 1){
			String msgTitulo = PropertiesLoaderImpl.getValor("msgValidaDiasSemanaExcluir");
			message.sendErrorMessageToUser(msgTitulo, "");
		}
		else if(diaSelecionado != null){
			diasSemana.remove(diaSelecionado);
		}
	}
	
	public boolean adicionaDias(){
		System.out.println("[METHOD][adicionaDias()]");

		System.out.println("[METHOD][adicionaDias()] +++++++++++++++++++++++++++++++++++++++++++++++ "+ diaSelecionado );
		System.out.println("[METHOD][adicionaDias()] +++++++++++++++++++++++++++++++++++++++++++++++ "+ diasSemana );


		if(diaSelecionado != null && diaSelecionado != "" ){
			System.out.println("[METHOD][adicionaDias()] +++++++++++++++++++++++++++++++++++++++++++++++ "+ diaSelecionado );
			if(diasSemana != null){
				for(String d : diasSemana){
					if(d.equals(diaSelecionado)){
						String msgTitulo = PropertiesLoaderImpl.getValor("msgValidaDiasSemana");
						message.sendErrorMessageToUser(msgTitulo, "");
						return true;
					}
				}
				diasSemana.add(diaSelecionado);
			}
		}
		return false;
	}

	
	public boolean adicionaAlimentos(){
		System.out.println("[METHOD][adicionaAlimentos()] +++++++++++++++++++++++++++++++++++++++++++++++"+  alimentoVOAltL);
		
		if(alimentoVOAltL != null){
			for(AlimentoVO a : alimentoEntityAltL){
				for(AlimentoVO s : alimentoVOAltL){
					System.out.println("[METHOD][adicionaAlimentos()] +++++++++++++++++++++++++++++++++++++++++++++++"+ s.getDescricao());

					if(a.getDescricao().equals(s.getDescricao())){
						String alimento = PropertiesLoaderImpl.getValor("msgValidaAlimentos") + a.getDescricao(); 
						String msgTitulo = alimento;
						message.sendErrorMessageToUser(msgTitulo, "");
						return true;
					}
				}
			}
			setSelectedAlimentoL(alimentoVOAltL);
			//alimentoEntityAltL.addAll(alimentoVOAltL);
		}
		else if(selectedAlimentoL == null){
			String msgTitulo = PropertiesLoaderImpl.getValor("msgValidaAddNull");
			message.sendErrorMessageToUser(msgTitulo, "");
			return true;
		}
		return false;
	}


	public List<AlimentoVO> getAlimentoEntityAltL() {
		System.out.println("getAlimentoEntityAltL()");

		AlimentosService alimentoService = new AlimentosService();
		
		if (tipoCardapio.equals(constObj.CARDAPIO_BUFFET)){
			System.out.println("[METHOD][TESTE getAlimentoEntityAltL()]..................."+ buffetEntity.getComposicaoCardBuffetWebs().size());
			alimentoEntityAltL = alimentoService.convertComposicaoBuffetEntityToAlimentoVO(buffetEntity.getComposicaoCardBuffetWebs());
		}
		else if (tipoCardapio.equals(constObj.CARDAPIO_SELFSERVICE)){
			alimentoEntityAltL = alimentoService.convertComposicaoSelfServiceEntityToAlimentoVO(selfserviceEntity.getComposicaoCardSelfServiceWebs());
		}
		return alimentoEntityAltL;
	}


	public void setAlimentoEntityAltL(List<AlimentoVO> alimentoEntityAltL) {
		this.alimentoEntityAltL = alimentoEntityAltL;
	}


	public CardapioG1Facade getCardapioG1EJB() {
		return cardapioG1EJB;
	}


	public void setCardapioG1EJB(CardapioG1Facade cardapioG1EJB) {
		this.cardapioG1EJB = cardapioG1EJB;
	}


	public List<AlimentoVO> getCompAlimentosAltL() {
		compAlimentosAltL = new ArrayList<AlimentoVO>();
		alimentoVO.setDescricao("TESTE 0 ");
		alimentoVO.setDescricao("TESTE 1 ");
		alimentoVO.setDescricao("TESTE 2 ");

		compAlimentosAltL.add(alimentoVO);
		return compAlimentosAltL;
	}


	public void setCompAlimentosAltL(List<AlimentoVO> compAlimentosAltL) {
		this.compAlimentosAltL = compAlimentosAltL;
	}


	public List<String> getDiasSemana() {
		if(diasSemana == null){
			AlimentosService alimentosObj = new AlimentosService();
			diasSemana = alimentosObj.parserDiasSemana(cardapioVO.getDiasSemana());
		}
		return diasSemana;
	}


	public void setDiasSemana(List<String> diasSemana) {
		this.diasSemana = diasSemana;
	}


	public String getDiaSelecionado() {
		return diaSelecionado;
	}


	public void setDiaSelecionado(String diaSelecionado) {
		System.out.println("[METHOD][SetDiaSelecionado()]....................................."+ diaSelecionado);
		this.diaSelecionado = diaSelecionado;
	}


	public AlimentoVO getAlimentoSelAlt() {
		return alimentoSelAlt;
	}


	public void setAlimentoSelAlt(AlimentoVO alimentoSelAlt) {
		this.alimentoSelAlt = alimentoSelAlt;
	}


	public List<AlimentoVO> getAlimentoVOAltL() {
		return alimentoVOAltL;
	}


	public void setAlimentoVOAltL(List<AlimentoVO> alimentoVOAltL) {
		this.alimentoVOAltL = alimentoVOAltL;
	}


	public String getStatusDescricao() {
		return statusDescricao;
	}


	public void setStatusDescricao(String statusDescricao) {
		this.statusDescricao = statusDescricao;
	}


	public int getStatusTipo() {
		return statusTipo;
	}


	public void setStatusTipo(int statusTipo) {
		this.statusTipo = statusTipo;
	}


	public String getNomePratoFrioCardapio() {
		return nomePratoFrioCardapio;
	}


	public void setNomePratoFrioCardapio(String nomePratoFrioCardapio) {
		this.nomePratoFrioCardapio = nomePratoFrioCardapio;
	}


	public String getNomePratoQuenteCardapio() {
		return nomePratoQuenteCardapio;
	}


	public void setNomePratoQuenteCardapio(String nomePratoQuenteCardapio) {
		this.nomePratoQuenteCardapio = nomePratoQuenteCardapio;
	}


	public String getNomeSobremesaCardapio() {
		return nomeSobremesaCardapio;
	}


	public void setNomeSobremesaCardapio(String nomeSobremesaCardapio) {
		this.nomeSobremesaCardapio = nomeSobremesaCardapio;
	}


	public String getNomeCortesiaCardapio() {
		return nomeCortesiaCardapio;
	}


	public void setNomeCortesiaCardapio(String nomeCortesiaCardapio) {
		this.nomeCortesiaCardapio = nomeCortesiaCardapio;
	}


	public String getMsgAtivacaoDesativacaoCardapio() {
		return msgAtivacaoDesativacaoCardapio;
	}


	public void setMsgAtivacaoDesativacaoCardapio(
			String msgAtivacaoDesativacaoCardapio) {
		this.msgAtivacaoDesativacaoCardapio = msgAtivacaoDesativacaoCardapio;
	}


	public String getMsgTituloAtivacaoDesativacaoCardapio() {
		return msgTituloAtivacaoDesativacaoCardapio;
	}


	public void setMsgTituloAtivacaoDesativacaoCardapio(
			String msgTituloAtivacaoDesativacaoCardapio) {
		this.msgTituloAtivacaoDesativacaoCardapio = msgTituloAtivacaoDesativacaoCardapio;
	}


	public List<ComposicaoCardBuffetWeb> getCompCardBuffet() {
		return compCardBuffet;
	}


	public void setCompCardBuffet(List<ComposicaoCardBuffetWeb> compCardBuffet) {
		this.compCardBuffet = compCardBuffet;
	}


//*************************************************************************************************************


}
